package com.egao.ap.service;

import com.egao.ap.entity.Settings;
import com.egao.common.core.damon.results.PageResult2;
import com.egao.common.core.web.JsonResult;
import com.egao.common.system.entity.User;
import com.egao.ap.entity.Information;
import net.sf.json.JSONObject;
import org.apache.poi.ss.formula.functions.T;

import java.util.List;
import java.util.Map;

/**
 * 帖子服务类
 * @author : Doman
 * @date : 2020-10-12 14:21:51
 * @version ：1.0
 */
public interface InformationService /*extends IService<Information>*/ {

    /**
     * 分页查询
     */
    //PageResult<Information> listPage(PageParam<Information> page);

    /**
     * 查询所有
     */
    //List<Information> listAll(Map<String, Object> page);

    /**
	 * 分页查询
	 * @param page
	 * @param information
	 * @return
	 */
	public JsonResult list(PageResult2<T> page, Information information, User loginUser) throws Exception;

    /**
	 * 分页查询
	 * @param page
	 * @param information
	 * @return
	 */
	public JsonResult list(PageResult2<T> page, Information information) throws Exception;

	/**
	 * 获取list
	 * @param information
	 * @return
	 */
	public JsonResult list(Information information, User loginUser);

	/**
	 * 获取list
	 * @param information
	 * @return
	 */
	public JsonResult list(Information information);

	/**
	 * 获取list
	 * @param information
	 * @return
	 */
	public JsonResult appList(Information information);

	/**
	 * 获取实体类表格
	 * @param information
	 * @return
	 */
	public JsonResult infoStateNum(Information information);

	/**
	 * 根据Id查询
	 * @param information
	 * @return
	 */
	public JsonResult getById(Information information);
	/**
	 * 根据Id查询
	 * @param information
	 * @return
	 */
	public JsonResult getByOpenid(Information information);

	/**
	 * 根据Id查询实体类
	 * @param settings
	 * @return
	 */
	public JsonResult getByType(Settings settings);
	/**
	 * 保存
	 * @param information
	 * @param loginUser
	 * @return
	 */
	public JsonResult save(Information information, User loginUser);

	/**
	 * 修改
	 * @param information
	 * @param loginUser
	 * @return
	 */
	public JsonResult update(Information information, User loginUser);

	/**
	 * 修改
	 * @param information
	 * @param loginUser
	 * @return
	 */
	public JsonResult updateUpTime(Information information, User loginUser);

	/**
	 * 修改
	 * @param information
	 * @param loginUser
	 * @return
	 */
	public JsonResult updateState(Information information, User loginUser);

	/**
	 * 删除
	 * @param information
	 * @param loginUser
	 * @return
	 */
	public JsonResult remove(Information information, User loginUser);
}
